/**
 * 文件管理相关类型定义
 */

/**
 * 文件查询参数
 */
export interface FileQuery {
  /** 关键词搜索 */
  keyword?: string
  /** 文件类型 */
  fileType?: string
  /** 上传时间范围 */
  dateRange?: [string, string]
  /** 页码 */
  page: number
  /** 每页条数 */
  pageSize: number
}

/**
 * 文件信息
 */
export interface File {
  /** 文件ID */
  id: string
  /** 文件名 */
  name: string
  /** 原始文件名 */
  originalName: string
  /** 文件类型 */
  type: string
  /** 文件大小（字节） */
  size: number
  /** 文件路径 */
  path: string
  /** 预览URL */
  url: string
  /** 文件夹 */
  folder?: string
  /** 文件描述 */
  description?: string
  /** 上传时间 */
  uploadTime: string
  /** 上传人 */
  uploadBy: string
  /** 更新时间 */
  updateTime?: string
  /** 更新人 */
  updateBy?: string
  /** 文件MD5 */
  md5?: string
  /** 文件后缀 */
  extension?: string
}

/**
 * 上传文件参数
 */
export interface UploadFile {
  /** 文件对象 */
  file: globalThis.File
  /** 文件夹 */
  folder?: string
  /** 文件描述 */
  description?: string
}

/**
 * 文件夹信息
 */
export interface Folder {
  /** 文件夹ID */
  id: string
  /** 文件夹名称 */
  name: string
  /** 父级文件夹ID */
  parentId: string | null
  /** 文件夹路径 */
  path: string
  /** 类型 */
  type: 'folder'
  /** 大小 */
  size?: number
  /** 文件数量 */
  fileCount: number
  /** 创建时间 */
  createTime: string
  /** 更新时间 */
  updateTime?: string
}

/**
 * 文件预览信息
 */
export interface FilePreview {
  /** 预览URL */
  url: string
  /** 文件类型 */
  type: string
  /** 文件名 */
  name: string
  /** 文件大小 */
  size: number
}

/**
 * 文件列表响应
 */
export interface FileList {
  /** 文件列表 */
  list: File[]
  /** 总数 */
  total: number
} 